// opcode_def.h - Opcode Definitions
//
// Copyright (c) 2009 Anthony Green.  All Rights Reserved.
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
// 
// The above named program is free software; you can redistribute it
// and/or modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
// 
// The above named program is distributed in the hope that it will be
// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
// 
// You should have received a copy of the GNU General Public License
// along with this work; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
// 02110-1301, USA.

`define MOXIE_OP_NOP	16'b00000000????????
`define MOXIE_OP_LDIL	16'b00000001????????
`define MOXIE_OP_MOV 	16'b00000010????????
`define MOXIE_OP_JSRA 	16'b00000011????????
`define MOXIE_OP_RET 	16'b00000100????????
`define MOXIE_OP_ADDL 	16'b00000101????????
`define MOXIE_OP_PUSH 	16'b00000110????????
`define MOXIE_OP_POP	16'b00000111????????
`define MOXIE_OP_LDAL 	16'b00001000????????
`define MOXIE_OP_STAL 	16'b00001001????????
`define MOXIE_OP_LDL 	16'b00001010????????
`define MOXIE_OP_TSTL 	16'b00001011????????
`define MOXIE_OP_LDOL 	16'b00001100????????
`define MOXIE_OP_STOL 	16'b00001101????????
`define MOXIE_OP_CMP 	16'b00001110????????
`define MOXIE_OP_JSR 	16'b00011001????????
`define MOXIE_OP_JMPA 	16'b00011010????????
`define MOXIE_OP_LDIB 	16'b00011011????????
`define MOXIE_OP_LDB 	16'b00011100????????
`define MOXIE_OP_LDAB 	16'b00011101????????
`define MOXIE_OP_TSTB 	16'b00011110????????
`define MOXIE_OP_STAB 	16'b00011111????????
`define MOXIE_OP_LDIS 	16'b00100000????????
`define MOXIE_OP_LDS 	16'b00100001????????
`define MOXIE_OP_LDAS 	16'b00100010????????
`define MOXIE_OP_TSTS 	16'b00100011????????
`define MOXIE_OP_STAS 	16'b00100100????????
`define MOXIE_OP_JMP 	16'b00100101????????
`define MOXIE_OP_AND 	16'b00100110????????
`define MOXIE_OP_LSHR 	16'b00100111????????
`define MOXIE_OP_ASHR 	16'b00101000????????
`define MOXIE_OP_SUBL 	16'b00101001????????
`define MOXIE_OP_NEG 	16'b00101010????????
`define MOXIE_OP_OR 	16'b00101011????????
`define MOXIE_OP_NOT 	16'b00101100????????
`define MOXIE_OP_ASHR 	16'b00101101????????
`define MOXIE_OP_XOR 	16'b00101110????????
`define MOXIE_OP_MULL 	16'b00101111????????
`define MOXIE_OP_SWI 	16'b00110000????????
`define MOXIE_OP_DIVL 	16'b00110001????????
`define MOXIE_OP_UDIVL 	16'b00110010????????
`define MOXIE_OP_MODL 	16'b00110011????????
`define MOXIE_OP_UMODL 	16'b00110100????????
`define MOXIE_OP_BRK 	16'b00110101????????
`define MOXIE_OP_LDOB 	16'b00110110????????
`define MOXIE_OP_STOB 	16'b00110111????????
`define MOXIE_OP_LDOS 	16'b00111000????????
`define MOXIE_OP_STOS 	16'b00111001????????
`define MOXIE_OP_INC 	16'b1000????????????
`define MOXIE_OP_DEC 	16'b1001????????????
`define MOXIE_OP_GSR 	16'b1010????????????
`define MOXIE_OP_SSR 	16'b1011????????????
`define MOXIE_OP_BEQ 	16'b110000??????????
`define MOXIE_OP_BNE 	16'b110001??????????
`define MOXIE_OP_BLT 	16'b110010??????????
`define MOXIE_OP_BGT 	16'b110011??????????
`define MOXIE_OP_BLTU 	16'b110100??????????
`define MOXIE_OP_BGTU 	16'b110101??????????
`define MOXIE_OP_BGE 	16'b110110??????????
`define MOXIE_OP_BLE 	16'b110111??????????
`define MOXIE_OP_BGEU 	16'b111000??????????
`define MOXIE_OP_BLEU 	16'b111001??????????

